import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * Tar imot uventende hendelser (exceptions) og skriver de til en "uventede-hendelsers-fil"
 */
public class LogHandler {
	private String pathToLogFile;

	public LogHandler(String pathToLogFile) {
		this.pathToLogFile = pathToLogFile;
	}
	
	public boolean writeToLog(String s) {
		// Setter datoformat og lagrer det i streng-variabelen 'todaysDate'
		DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
		Date date = new Date();
		String todaysDate = dateFormat.format(date);
				
		// Lager en Path til log-filen ut i fra dagens dato
		Path filePath = Paths.get(pathToLogFile.replace("\\", "/") + "/" + todaysDate + ".txt");
		
		// Tegnsettet som benyttes under skriving til fil
		Charset charset = Charset.forName("UTF-8");
		try {
			BufferedWriter writer = Files.newBufferedWriter(filePath, charset, new OpenOption[] {StandardOpenOption.CREATE, StandardOpenOption.APPEND});
			
			// Skriver til log og legger til et linjeskift
			
			dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");
			date = new Date();
			String time = dateFormat.format(date);
			
		    writer.write(time + " -- " + s);
		    
			//writer.write(s);
		    writer.newLine();
		    
		    // Avslutter og lukker filskriving
		    writer.flush();
		    writer.close();
		    
		    return true;
		} catch (IOException x) {
		    System.err.format("IOException: %s%n", x);
		    return false;
		}
	}
	
	public String getLogPath() {
		return pathToLogFile;
	}
}